package com.exigen.perflabstat.dao.jpa;

import java.util.List;

import javax.persistence.Query;

import com.exigen.perflabstat.base.GenericJPADAO;
import com.exigen.perflabstat.dao.TransactionNameDao;
import com.exigen.perflabstat.models.TransactionName;

public class TransactionNameJpaDao extends GenericJPADAO<TransactionName, Long> implements TransactionNameDao {

	public TransactionNameJpaDao() {
		super(TransactionName.class);
	}

	@SuppressWarnings("unchecked")
	public List<TransactionName> allTransactionNames() {
		
		Query query = getEntityManager().createQuery("from TransactionName");
		
		List<TransactionName> result = query.getResultList();
		
		return result;
	}
	
	@SuppressWarnings("unchecked")
	public TransactionName findByTransactionName(String transactionName) {
		
		TransactionName transaction = null;
		
		Query query = getEntityManager().createQuery("select transaction from TransactionName transaction where transaction.TRANSACTION_NAME = :transactionName");
		query.setParameter("transactionName", transactionName);
		query.setMaxResults(1);
		
		List<TransactionName> result = query.getResultList();
		
		if(result.isEmpty())return null;
			
		transaction = result.get(0);
		
		return transaction;
	}
	
}
